﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using _InformaticaIndustrial_DerivdosVinicos.DTO;
using Dao.Intermediarios;
using Dao;

namespace _InformaticaIndustrial_DerivdosVinicos.Interfaz
{
    public partial class BuscarOP : Form
    {
        IPOrdenProduccion ipOP = new IPOrdenProduccion();
        IPDetalleOP ipDOP = new IPDetalleOP();
        IPProducto ipProd = new IPProducto();
        OrdenProduccion op = new OrdenProduccion();

        public BuscarOP(Principal principal)
        {
            InitializeComponent();
        }

        private void btBuscar_Click(object sender, EventArgs e)
        {
            try
            {
                op = ipOP.getPorNroOrden<OrdenProduccion>("", "", Convert.ToInt16(txtNroOP.Text)).First();
                            
                txtNroOP.Text = op.nroOP.ToString();
                txtFechaEjecucion.Text = op.fechaEjecucion.ToString();
                txtEstado.Text = op.estado;

                IList<DetalleOP> detalles;// ;

                //CREAR DETALLES EN LA BASE DE DATOS!!!!!!!!!!!!!
                detalles = ipDOP.getCriterioById<DetalleOP>("", "", Convert.ToInt16(op.idOP));

                foreach (var d in detalles)
                {
                    IList<Producto> prod = new List<Producto>();
                    prod = ipProd.getCriterioById<Producto>("IdProducto", "=", Convert.ToInt16(d.IdProducto));

                    foreach (var p in prod)
                    {
                        DataGridViewRow fila = new DataGridViewRow();

                        DataGridViewTextBoxCell cell = new DataGridViewTextBoxCell();

                        cell = new DataGridViewTextBoxCell();
                        cell.Value = p.codProducto;
                        fila.Cells.Add(cell);

                        cell = new DataGridViewTextBoxCell();
                        cell.Value = p.NombreProducto;
                        fila.Cells.Add(cell);

                        cell = new DataGridViewTextBoxCell();
                        cell.Value = d.cantidad;
                        fila.Cells.Add(cell);

                        dgProductos.Rows.Add(fila);
                    }
                }
            }
            catch(Exception ex){
                MessageBox.Show("El Nº de Orden de Producción No Existe.");
                txtNroOP.Text = "";
            }
        }

        private void btSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btModificar_Click(object sender, EventArgs e)
        {
            if (op.estado != "Pendiente")
            {
                MessageBox.Show("La Orden de Producción no puede ser modificada.");
            }
            else
            {
                Form interf = new _InformaticaIndustrial_DerivdosVinicos.Interfaz.ModificarOP(op);
                this.Visible = true;   // Para que sea visible la Interfaz principal
                interf.Visible = true; // Para que sea visible la Interfaz de MaestroArticulos
            }
        } 
    }
}
